Optical Character Recognition (OCR) systems are widely used. In an OCR system, as most errors occur at a character recognition stage, accuracy of recognition of individual characters is a pivotal factor. In order to achieve greater OCR accuracy, the number of errors in recognizing individual characters must be minimized.
To achieve better recognition accuracy, several different classifiers are used. Each classifier has its own set of ratings and scales. In an OCR system different classifiers can be used. These may include a raster classifier, a feature classifier, a structure classifier, etc. In order to recognize a character image, a classifier compares the image with a set of patterns. Generally, each classifier has its own set of character patterns. A pattern is a template of some character for a classifier. A classifier compares an image of unknown character with the set of patterns of all characters and estimates how much the image similar or dissimilar to one or another character. In fact, classifier may have several patterns for a single character.
For instance, there may be several patterns for character “a” like “a”, “a”, and etc. A classifier compares an image with the whole group of patterns for the character “a” but chooses the best coincidence (matching) and further takes into account only the one weight which was obtained for this best variant. The same process is performed with pattern groups of all others characters. Then only the best weights of each pattern groups are compared with each other to find out which character is represented at the image. Therefore, when it is a matter of weight which was obtained by comparing an image with a pattern of some character actually it is meant the best weight of the pattern group of that character.
Patterns are obtained by processing character images from a training image database. Said database base contains real images of different characters, which were selected for training a classifier. An example of image from the database usually is named a learning sample or sample image. The training image database may be used for different others methods of recognition quality improvement as well, including training of weight combining for several classifiers. But in these cases it is useful to employ another database, more specifically a database with images dissimilar to that ones, on which the patterns were trained.
A raster classifier compares a character image with a pattern by superimposing an image of the character on an image of its pattern. A degree of discrepancy is expressed by a number of differing pixels. To achieve an acceptable degree of accuracy with a raster classifier, the image should be pre-processed. Specifically, a size, a slant and a stroke width of the image should be normalized. For example, all character images can be reduced to the same size of 14×14 pixels. Patterns for each class of character are typically obtained by averaging the images of the corresponding character in a learning sample on which the raster classifier is trained. The raster classifier is easy to implement, works fast, and has a good tolerance of image defects. However, the accuracy of the raster classifier is relatively low. Another drawback of the raster classifier is its high sensitivity to changes in shape of the characters.
A feature classifier operates on the following principles. The features of a source image are computed and the image is converted into an N-dimensional feature vector. A type and a number of features are most important characteristics that determine quality of results obtained with the feature classifier. Next, the feature vector is compared with a set of pattern feature vectors. The comparison of each pair of feature vectors consists in computing a rating that describes a distance between points in an N-dimensional space, where a point is a geometrical representation of a feature vector. The major advantages of the feature classifier are the ease of implementation, good capability to make generalizations, good tolerance of changes in character shapes, low number of recognition failures, and high speed. A major disadvantage of the feature classifier is low tolerance of various image defects. Additionally, the features are computed independently, which results in loss of information about mutual positioning of the character elements. The feature classifier is a general name for a plurality of different classifiers, each using its own set of features.
A contour classifier is a kind of feature classifier. To extract the features, the contour classifier uses the contours (boundaries) that have been identified in the character image. Its operational principles, advantages, and disadvantages are the same as those of the feature classifier.
A structure classifier uses man-made character structural models, against which an image being recognized is compared. A character in a structure classifier is described by a set of structural elements such as a line, an arc, a circle and a dot; and allowed mutual positioning of the elements is defined by means of geometric relations such as a line angle, a length, an intersection of lines, and the like. Variables used in relations are attributes (length restriction, range of angles, deviation from direct line and etc.) and coordinates of characteristic character points, such as ends and extrema. A pattern specifies ranges of allowed values for the attributes of each structural element. In case of a line, for example, the range of possible angles and a maximum deviation from the straight line are specified. The relations are specified by means of fuzzy logical expressions. Structural character descriptions are characterized by a high degree of generalization and can achieve high recognition accuracy even for highly variable characters, which is particularly important in the case of hand-printed and hand-written characters.
Each classifier has its own set of ratings and features. This leads to a problem of combining the ratings obtained from the different classifiers. A further problem lies in obtaining a qualitative assessment of the recognizer. Specifically, the following problems may arise when combining classifiers: a) Different classifiers may have different quantitative scales. For example, a raster classifier may produce ratings on a scale from to 0 to 400 and an contour classifier may have a scale from 0 to 800. In this case, how would one compute an overall rating? b) Each classifier will recognize some characters better and some characters worse, which, in turn, may be successfully recognized by another classifier. How would these factors take into account when combining several classifiers? c) Disagreement quantitative scales that was obtained for different characters from the same classifier. Specifically, in case of difficult characters, for example, (“t” and “f”, “e” and “c”, “z” and “2”), a 30% match with the pattern, especially for hand-written characters, is considered a fairly good result which allows the classifier to reliably recognize the character. On the other hand, for simple characters (“x”, “7”, “A”), 30% is very low and, most likely, means that the character has been recognized incorrectly. For simple characters, a 70-80% match is considered a good result. Another problem is that one extra pixel for character A may mean something completely different than one extra pixel for character B.